Skip to content

fix(engine): restore cursor position after Call returns#232

Merged
zharinov merged 1 commit intomasterfrom
fix/cursor-restore
Jan 3, 2026
Merged

fix(engine): restore cursor position after Call returns#232
zharinov merged 1 commit intomasterfrom
fix/cursor-restore

Conversation

@zharinov
Copy link
Copy Markdown
Member

@zharinov zharinov commented Jan 3, 2026

Summary

  • Fix recursive quantified patterns breaking outer sequence matching
  • Save cursor position in Frame after Call navigation, restore on Return
  • Ensures Nav::Next in quantifier loops finds correct sibling

Root Cause: After a Call instruction returns, cursor was left wherever callee left it (potentially deep in subtree). Outer quantifier's Nav::Next navigated from wrong tree depth.

Test plan

  • All 751 existing tests pass
  • Recursive query (closure (Rec)*) now returns all matching siblings

@zharinov zharinov enabled auto-merge (squash) January 3, 2026 17:58
@zharinov zharinov merged commit 4e57b22 into master Jan 3, 2026
4 checks passed
@zharinov zharinov deleted the fix/cursor-restore branch January 3, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant